import java.io.*;
import java.net.*;
import java.util.*;

public class ClienteCLI
{
	String host;
	int port;
	String nick;
	Socket socket;
	BufferedReader entrada;
	PrintWriter salida;
	GestorCliente gestorCliente;

	public ClienteCLI(String host, int port, String nick)
	{
		this.host = host;
		this.port = port;
		this.nick = nick;
		this.socket = null;
		this.entrada = null;
		this.salida = null;
		gestorCliente = null;
	}

	void conectar_servidor()
	{
		try
		{
			InetAddress inetAddress = InetAddress.getByName(this.host);
			this.socket = new Socket(inetAddress, this.port);
			entrada = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
			salida = new PrintWriter(new BufferedWriter(new OutputStreamWriter(this.socket.getOutputStream())), true);
		}
		catch (Exception e)
		{
			e.printStackTrace();
			System.exit(-1);
		}
		gestorCliente = new GestorCliente(this.socket);
		gestorCliente.start();
		salida.println("<nombre_jugador>" + nick + "</nombre_jugador>");
	}

	void esperar_ordenes()
	{
		boolean continuar = true;

		while (continuar)
		{
			System.out.print("> ");
			String comando = LeerTeclado.readLine();
			String[] strings = comando.split(" ");
			try
			{
				if (strings[0].charAt(0) == '/')
				{
					if (strings[0].equals("/listar"))
					{
						salida.println("<lista_de_partidas></lista_de_partidas>");
					}
					if (strings[0].equals("/conectar"))
					{
						salida.println("<conectar_partida><nombre>" + strings[1] + "</nombre></conectar_partida>");
					}
					if (strings[0].equals("/crear"))
					{
						salida.println("<crear_partida>" + "<nombre>" + strings[1] + "</nombre>" + "</crear_partida>");
					}
					if (strings[0].equals("/salir"))
					{
						salida.println("<salir></salir>");
						continuar = false;
					}
				}
				else
				{
					salida.println("<mensaje>" + comando + "</mensaje>");
				}
			}
			catch (Exception e)
			{
				e.printStackTrace();
				System.exit(-1);
			}
		}
	}
}